home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / share / m17n / cmc-kbd.mim < prev    next >
Text File  |  2009-04-29  |  5KB  |  228 lines

  1. ;; cmc-kdb.mim -- Cham input method based on Cham keyboard
  2. ;; Copyright (C) 2008
  3. ;;   National Institute of Advanced Industrial Science and Technology (AIST)
  4. ;;   Registration Number H15PRO112
  5.  
  6. ;; This file is part of the m17n database; a sub-part of the m17n
  7. ;; library.
  8.  
  9. ;; The m17n library is free software; you can redistribute it and/or
  10. ;; modify it under the terms of the GNU Lesser General Public License
  11. ;; as published by the Free Software Foundation; either version 2.1 of
  12. ;; the License, or (at your option) any later version.
  13.  
  14. ;; The m17n library is distributed in the hope that it will be useful,
  15. ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  17. ;; Lesser General Public License for more details.
  18.  
  19. ;; You should have received a copy of the GNU Lesser General Public
  20. ;; License along with the m17n library; if not, write to the Free
  21. ;; Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  22. ;; Boston, MA 02110-1301, USA.
  23.  
  24. (input-method cmc kbd)
  25.  
  26. (description (_"Cham input method simulating Cham keyboard.
  27. Cham characters are encoded in logical order in memory and in files.
  28. But, you can type Cham text in visual order with this input method.
  29. Backspace and Delete also work in the manner of visual order."))
  30.  
  31. (title "Ω¿îΩ⌐îk")
  32.  
  33. (map
  34.  ;; Independent vowels and consonants
  35.  (independent
  36.   ;; Vowels
  37.   ("a" "Ω¿Ç")
  38.   ("I" "Ω¿ü")
  39.   ("u" "Ω¿é")
  40.   ("e" "Ω¿â")
  41.   ("i" "Ω¿ä")
  42.   ("o" "Ω¿à")
  43.   ;; Cosonants
  44.   ("k" "Ω¿å")
  45.   ("A" "Ω¿ç")
  46.   ("g" "Ω¿ê")
  47.   ("G" "Ω¿ë")
  48.   ("z" "Ω¿è")
  49.   ("Z" "Ω¿ï")
  50.   ("c" "Ω¿î")
  51.   ("S" "Ω¿ì")
  52.   ("j" "Ω¿ä")
  53.   ("J" "Ω¿Å")
  54.   ("v" "Ω¿É")
  55.   ("V" "Ω¿æ")
  56.   ("W" "Ω¿Æ")
  57.   ("t" "Ω¿ô")
  58.   ("E" "Ω¿ö")
  59.   ("d" "Ω¿ò")
  60.   ("D" "Ω¿û")
  61.   ("n" "Ω¿ù")
  62.   ("q" "Ω¿ÿ")
  63.   ("Q" "Ω¿Ö")
  64.   ("p" "Ω¿Ü")
  65.   ("F" "Ω¿¢")
  66.   ("f" "Ω¿£")
  67.   ("b" "Ω¿¥")
  68.   ("B" "Ω¿₧")
  69.   ("m" "Ω¿ƒ")
  70.   ("M" "Ω¿á")
  71.   ("O" "Ω¿í")
  72.   ("y" "Ω¿ó")
  73.   ("r" "Ω¿ú")
  74.   ("l" "Ω¿ñ")
  75.   ("w" "Ω¿Ñ")
  76.   ("x" "Ω¿ª")
  77.   ("s" "Ω¿º")
  78.   ("h" "Ω¿¿"))
  79.  ;; Dependent vowels
  80.  (post-vowel
  81.   ("%" "Ω¿⌐")
  82.   ("^" "Ω¿⌐Ω¿«")
  83.   ("{" "Ω¿¬")
  84.   ("[" "Ω¿¬Ω⌐î")
  85.   ("}" "Ω¿½")
  86.   ("]" "Ω¿¼")
  87.   ("`" "Ω¿¡")
  88.   ("@" "Ω¿«")
  89.   ("$" "Ω¿«Ω⌐â")
  90.   ("#" "Ω¿«Ω⌐î")
  91.   ("<" "Ω¿▒")
  92.   ("\"" "Ω¿▒Ω¿«")
  93.   (">" "Ω¿▒Ω⌐î")
  94.   ("," "Ω¿▓"))
  95.  (pre-vowel
  96.   ("-" "Ω¿»")
  97.   ("=" "Ω¿░"))
  98.  
  99.  ;; Medials
  100.  (post-medial
  101.   ("~" "Ω¿│")
  102.   ("*" "Ω¿╡")
  103.   (")" "Ω¿╡Ω¿¡")
  104.   ("(" "Ω¿╡Ω¿╢")
  105.   ("&" "Ω¿╢"))
  106.  
  107.  (pre-medial
  108.   ("\\" "Ω¿┤"))
  109.  
  110.  ;; (";" ",")
  111.  
  112.  ;; Final consonants.
  113.  (final
  114.   ("K" "Ω⌐Ç")
  115.   ;; Ω⌐ü
  116.   ("U" "Ω⌐é")
  117.   ("/" "Ω⌐â")
  118.   ("C" "Ω⌐ä")
  119.   ("T" "Ω⌐à")
  120.   ("N" "Ω⌐å")
  121.   ("P" "Ω⌐ç")
  122.   ("Y" "Ω⌐ê")
  123.   ("R" "Ω⌐ë")
  124.   ("L" "Ω⌐è")
  125.   ("X" "Ω⌐ï")
  126.   ("'" "Ω⌐î")
  127.   ("H" "Ω⌐ì"))
  128.  
  129.  (misc
  130.   ;; Digits
  131.   ("0" "Ω⌐É")
  132.   ("1" "Ω⌐æ")
  133.   ("2" "Ω⌐Æ")
  134.   ("3" "Ω⌐ô")
  135.   ("4" "Ω⌐ö")
  136.   ("5" "Ω⌐ò")
  137.   ("6" "Ω⌐û")
  138.   ("7" "Ω⌐ù")
  139.   ("8" "Ω⌐ÿ")
  140.   ("9" "Ω⌐Ö")
  141.  
  142.   ;; Traditional punctuations.
  143.   ("_" "Ω⌐£")
  144.   ("|" "Ω⌐¥")
  145.   ("||" "Ω⌐₧")
  146.   ("|||" "Ω⌐ƒ")
  147.  
  148.   ;; ASCII remapping.
  149.   (";" ","))
  150.  
  151.  (edit
  152.   ((BackSpace)
  153.    (set PREV @-1)
  154.    (cond ((= PREV PM)
  155.       (set PREV @-2)
  156.       (cond ((& (>= PREV 0xAA00) (<= PREV 0xAA28))
  157.          (delete @-2) (insert PM))
  158.         (1 (unhandle))))
  159.      ((| (= PREV PV1) (= PREV PV2))
  160.       (cond ((= @-2 PM)
  161.          (cond ((& (>= @-3 0xAA00) (<= @-3 0xAA28))
  162.             (delete @-4)
  163.             (insert PREV) (insert PM))
  164.                (1 (unhandle))))
  165.         ((& (>= @-2 0xAA00) (<= @-2 0xAA28))
  166.          (delete @-2)
  167.          (insert PREV))
  168.         (1 (unhandle))))
  169.      (1 (unhandle))))
  170.  
  171.   ((Delete)
  172.    (set NEXT @+1)
  173.    (cond ((& (>= NEXT 0xAA00) (<= NEXT 0xAA28))
  174.       (set N2 @+2)
  175.       (cond ((= N2 PM)
  176.          (set N3 @+3)
  177.          (cond ((| (= N3 PV1) (= N3 PV2))
  178.             (delete @+3) (insert NEXT) (insert N2))
  179.                (1 (delete @+2) (insert NEXT))))
  180.         ((| (= N2 PV1) (= N2 PV2))
  181.          (delete @+2) (insert NEXT))
  182.         (1 (unhandle))))
  183.      (1 (unhandle)))))
  184.  )
  185.  
  186. (state
  187.  (init
  188.   (t (set PM 0xAA34)            ; PRE-MEDIAL
  189.      (set PV1 0xAA2F)            ; PRE-VOWEL-1
  190.      (set PV2 0xAA30)            ; PRE-VOWEL-2
  191.      )
  192.  
  193.   (independent
  194.    (set C @-1) (set PREV @-2)
  195.    (cond ((= PREV PM)
  196.       (set PREV @-3)
  197.       (cond ((| (= PREV PV1) (= PREV PV2))
  198.          (delete @-3) (insert C) (insert PM) (insert PREV))
  199.         ((| (< PREV 0xAA00) (> PREV 0xAA28))
  200.          (delete @-2) (insert C) (insert PM))))
  201.      ((| (= PREV PV1) (= PREV PV2))
  202.       (cond ((= @-3 PM))
  203.         ((| (< @-3 0xAA00) (> @-3 0xAA28))
  204.          (delete @-2) (insert C) (insert PREV))))))
  205.  
  206.   (pre-vowel
  207.    (set C @-1) (set NEXT @+1)
  208.    (cond ((& (>= NEXT 0xAA00) (<= NEXT 0xAA28))
  209.       (delete @-1) (delete @+1) (insert NEXT) (insert C) (set NEXT @+1)))
  210.    (cond ((& (>= NEXT 0xAA33) (<= NEXT 0xAA36))
  211.       (delete @-1) (delete @+1) (insert NEXT) (insert C))))
  212.  
  213.   (pre-medial
  214.    (set C @-1) (set NEXT @+1)
  215.    (cond ((& (>= NEXT 0xAA00) (<= NEXT 0xAA28))
  216.       (delete @-1) (delete @+1) (insert NEXT) (insert C))))
  217.  
  218.   (post-medial)
  219.   (post-vowel)
  220.   (final)
  221.   (misc)
  222.   (edit)))
  223.  
  224. ;; Local Variables:
  225. ;; coding: utf-8
  226. ;; mode: emacs-lisp
  227. ;; End:
  228.